#include <iostream>
using namespace std;

class R
{
public:
    R(int r1, int r2)
    {
        R1 = r1;
        R2 = r2;
    }
    void print();
    //const区分成员函数重载
    void print() const;

private:
    int R1, R2;
};

/* 常成员函数说明格式：类型说明符+函数名（参数表）+const；
这里，const是函数类型的一个组成部分，因此在实现部分也要带const关键字。
const关键字可以被用于参与对重载函数的区分
通过常对象只能调用它的常成员函数 
*/
//实例化成员函数
void R::print()
{
    cout << "usual " << endl;
    cout << R1 << ":" << R2 << endl;
}
//实例化时也需要带上const关键字
void R::print() const
{
    cout << "const" << endl;
    cout << R1 << ":" << R2 << endl;
}

int main()
{
    R a(5, 4);
    //调用void print（）
    a.print();
    //通过常对象只能调用它的常成员函数
    const R b(20, 52);
    b.print(); //调用void print() const
    system("pause");
    return 0;
}